<!DOCTYPE html>

<html
  xmlns="http://www.w3.org/1999/xhtml"
  >
  <head>
    <title>Choropleth map &#8211; from Data to Viz</title>

    <meta charset="utf-8" />
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="generator" content="pandoc" />
    <meta
      name="viewport"
      content="width=device-width, initial-scale=1, shrink-to-fit=no"
    />
    <meta
      name="description"
      content="An extensive description of Choropleth
map. Definition, examples, input data, common caveats, tool to build it and potential alternatives."
    />
    <meta
      name="keywords"
      content="Data,Dataviz,Datavisualization,Plot,Chart,Graph,R,Python,D3,Learning,Caveat,Pitfall,Mistake,Classification"
    />
    <meta name="author" content="Yan Holtz and Conor Healy" />
    <link rel="icon" href="img/logo/data-to-viz.ico" />

    <!-- Control appearance when share by social media -->
    <meta property="og:title" content="Choropleth map" />
    <meta
      property="og:image"
      content="https://github.com/holtzy/data_to_viz/raw/master/img/section/ChoroplethSmall.png"
    />
    <meta
      property="og:description"
      content="An extensive description of Choropleth
map. Definition, examples, input data, common caveats, tool to build it and potential alternatives."
    />
    <meta
      property="og:url"
      content="www.data-to-viz.com/caveat/choropleth.html"
    />
    <meta property="og:type" content="website" />

    <style>
      .myheader {
        background-image: url("https://github.com/holtzy/data_to_viz/raw/master/img/overview_RGG_faded.png");
        min-height: 300px;
        background-size: 100% 100%;

        /* Create the parallax scrolling effect */
        background-attachment: fixed;
        background-position: center;
        background-repeat: no-repeat;
        background-size: cover;

        height: 100%;
        width: 100% !important;
      }
      .mytitle {
        text-transform: uppercase;
        font-family: "Montserrat";
        font-size: 200%;
        font-weight: 500;
        letter-spacing: 4px;
      }
    </style>

    <div class="myheader" style="text-align: center">
      <br />
      <a href="http://www.data-to-viz.com"
        ><img
          align="left"
          src="https://github.com/holtzy/data_to_viz/raw/master/img/logo/typo.png"
          style="width: 150px; vertical-align: top; margin-left: 5%"
      /></a>
      <br /><br />
      <br /><br />
      <a href="http://www.data-to-viz.com">
        <img
          src="https://github.com/holtzy/data_to_viz/raw/master/img/section/ChoroplethSmall.png"
      /></a>
      <br /><br />
      <p class="mytitle">Choropleth map</p>
      <p style="color: #d0d0d0">
        <a href="#definition">definition</a> - <a href="#mistake">mistake</a> -
        <a href="#related">related</a> -
        <a href="#code">code</a>
      </p>
    </div>

         <script src="libs/header-attrs-2.27/header-attrs.js"></script>
<script src="libs/jquery-3.6.0/jquery-3.6.0.min.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link href="libs/bootstrap-3.3.5/css/lumen.min.css" rel="stylesheet" />
<script src="libs/bootstrap-3.3.5/js/bootstrap.min.js"></script>
<script src="libs/bootstrap-3.3.5/shim/html5shiv.min.js"></script>
<script src="libs/bootstrap-3.3.5/shim/respond.min.js"></script>
<style>h1 {font-size: 34px;}
       h1.title {font-size: 38px;}
       h2 {font-size: 30px;}
       h3 {font-size: 24px;}
       h4 {font-size: 18px;}
       h5 {font-size: 16px;}
       h6 {font-size: 12px;}
       code {color: inherit; background-color: rgba(0, 0, 0, 0.04);}
       pre:not([class]) { background-color: white }</style>
<script src="libs/navigation-1.1/tabsets.js"></script>
<script src="libs/navigation-1.1/codefolding.js"></script>
<link href="libs/pagedtable-1.1/css/pagedtable.css" rel="stylesheet" />
<script src="libs/pagedtable-1.1/js/pagedtable.js"></script>       <style type="text/css">
      code {
        white-space: pre;
      }
    </style>
    <style type="text/css">
      pre > code.sourceCode { white-space: pre; position: relative; }
      pre > code.sourceCode > span { line-height: 1.25; }
      pre > code.sourceCode > span:empty { height: 1.2em; }
      .sourceCode { overflow: visible; }
      code.sourceCode > span { color: inherit; text-decoration: inherit; }
      div.sourceCode { margin: 1em 0; }
      pre.sourceCode { margin: 0; }
      @media screen {
      div.sourceCode { overflow: auto; }
      }
      @media print {
      pre > code.sourceCode { white-space: pre-wrap; }
      pre > code.sourceCode > span { display: inline-block; text-indent: -5em; padding-left: 5em; }
      }
      pre.numberSource code
        { counter-reset: source-line 0; }
      pre.numberSource code > span
        { position: relative; left: -4em; counter-increment: source-line; }
      pre.numberSource code > span > a:first-child::before
        { content: counter(source-line);
          position: relative; left: -1em; text-align: right; vertical-align: baseline;
          border: none; display: inline-block;
          -webkit-touch-callout: none; -webkit-user-select: none;
          -khtml-user-select: none; -moz-user-select: none;
          -ms-user-select: none; user-select: none;
          padding: 0 4px; width: 4em;
          color: #aaaaaa;
        }
      pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa;  padding-left: 4px; }
      div.sourceCode
        {   }
      @media screen {
      pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
      }
      code span.al { color: #ff0000; font-weight: bold; } /* Alert */
      code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */
      code span.at { color: #7d9029; } /* Attribute */
      code span.bn { color: #40a070; } /* BaseN */
      code span.bu { color: #008000; } /* BuiltIn */
      code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */
      code span.ch { color: #4070a0; } /* Char */
      code span.cn { color: #880000; } /* Constant */
      code span.co { color: #60a0b0; font-style: italic; } /* Comment */
      code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */
      code span.do { color: #ba2121; font-style: italic; } /* Documentation */
      code span.dt { color: #902000; } /* DataType */
      code span.dv { color: #40a070; } /* DecVal */
      code span.er { color: #ff0000; font-weight: bold; } /* Error */
      code span.ex { } /* Extension */
      code span.fl { color: #40a070; } /* Float */
      code span.fu { color: #06287e; } /* Function */
      code span.im { color: #008000; font-weight: bold; } /* Import */
      code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */
      code span.kw { color: #007020; font-weight: bold; } /* Keyword */
      code span.op { color: #666666; } /* Operator */
      code span.ot { color: #007020; } /* Other */
      code span.pp { color: #bc7a00; } /* Preprocessor */
      code span.sc { color: #4070a0; } /* SpecialChar */
      code span.ss { color: #bb6688; } /* SpecialString */
      code span.st { color: #4070a0; } /* String */
      code span.va { color: #19177c; } /* Variable */
      code span.vs { color: #4070a0; } /* VerbatimString */
      code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */
            div.sourceCode {
        overflow-x: visible;
      }
          </style>
        <style type="text/css">
      pre:not([class]) {
        background-color: white;
      }
    </style>
           <style type="text/css">
      h1 {
        font-size: 34px;
      }
      h1.title {
        font-size: 38px;
      }
      h2 {
        font-size: 30px;
      }
      h3 {
        font-size: 24px;
      }
      h4 {
        font-size: 18px;
      }
      h5 {
        font-size: 16px;
      }
      h6 {
        font-size: 12px;
      }
      .table th:not([align]) {
        text-align: left;
      }
          </style>
         <link
      rel="stylesheet"
      href="style.css"
      type="text/css"
      
    />
      </head>

  <body>
        <style type="text/css">
      .main-container {
        max-width: 940px;
        margin-left: auto;
        margin-right: auto;
      }
      code {
        color: inherit;
        background-color: rgba(0, 0, 0, 0.04);
      }
      img {
        max-width: 100%;
        height: auto;
      }
      .tabbed-pane {
        padding-top: 12px;
      }
      button.code-folding-btn:focus {
        outline: none;
      }
    </style>

     
    <div class="container-fluid main-container">
      <!-- tabsets -->
      <script>
        $(document).ready(function () {
          window.buildTabsets("TOC");
        });
      </script>

      <!-- code folding -->
            <style type="text/css">
        .code-folding-btn {
          margin-bottom: 4px;
        }
      </style>
      <script>
        $(document).ready(function () {
                          window.initializeCodeFolding("hide" === "show");
                });
      </script>
         
                    <div class="fluid-row" id="header">
                        <div class="btn-group pull-right">
              <button
                type="button"
                class="btn btn-default btn-xs dropdown-toggle"
                data-toggle="dropdown"
                aria-haspopup="true"
                aria-expanded="false"
              >
                <span>Show Code</span> <span class="caret"></span>
              </button>
              <ul class="dropdown-menu" style="min-width: 50px">
                                <li><a id="rmd-show-all-code" href="#">Show All Code</a></li>
                <li><a id="rmd-hide-all-code" href="#">Hide All Code</a></li>
                                </ul>
            </div>

                         </div>

              <div class="mycontent">
<div id="definition" class="section level1">
<h1>Definition</h1>
<hr />
<p>A <code>choropleth map</code> displays divided geographical areas or
regions that are coloured in relation to a numeric variable. It allows
to study how a variable evolutes along a territory. It is a powerful and
widely used data visualization technique. However, its downside is that
regions with bigger sizes tend to have a bigger weight in the map
interpretation, which includes a bias.</p>
<p><br></p>
<p>Here is an example describing the distribution of restaurants in the
south of france.</p>
<div class="sourceCode" id="cb1"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb1-1"><a href="#cb1-1" tabindex="-1"></a><span class="co"># Libraries</span></span>
<span id="cb1-2"><a href="#cb1-2" tabindex="-1"></a><span class="fu">library</span>(sf)</span>
<span id="cb1-3"><a href="#cb1-3" tabindex="-1"></a><span class="fu">library</span>(cartogram)</span>
<span id="cb1-4"><a href="#cb1-4" tabindex="-1"></a><span class="fu">library</span>(tidyverse)</span>
<span id="cb1-5"><a href="#cb1-5" tabindex="-1"></a><span class="fu">library</span>(broom)</span>
<span id="cb1-6"><a href="#cb1-6" tabindex="-1"></a><span class="fu">library</span>(viridis)</span>
<span id="cb1-7"><a href="#cb1-7" tabindex="-1"></a><span class="fu">library</span>(patchwork)</span>
<span id="cb1-8"><a href="#cb1-8" tabindex="-1"></a><span class="fu">library</span>(geojsonio)</span>
<span id="cb1-9"><a href="#cb1-9" tabindex="-1"></a></span>
<span id="cb1-10"><a href="#cb1-10" tabindex="-1"></a><span class="co"># Import region boundaries</span></span>
<span id="cb1-11"><a href="#cb1-11" tabindex="-1"></a>spdf <span class="ot">&lt;-</span> <span class="fu">geojson_read</span>(<span class="st">&quot;https://raw.githubusercontent.com/gregoiredavid/france-geojson/master/communes.geojson&quot;</span>,  <span class="at">what =</span> <span class="st">&quot;sp&quot;</span>)</span>
<span id="cb1-12"><a href="#cb1-12" tabindex="-1"></a></span>
<span id="cb1-13"><a href="#cb1-13" tabindex="-1"></a><span class="co"># Select a subset of the data</span></span>
<span id="cb1-14"><a href="#cb1-14" tabindex="-1"></a>spdf <span class="ot">&lt;-</span> spdf[<span class="fu">substr</span>(spdf<span class="sc">@</span>data<span class="sc">$</span>code, <span class="dv">1</span>, <span class="dv">2</span>) <span class="sc">%in%</span> <span class="fu">c</span>(<span class="st">&quot;06&quot;</span>, <span class="st">&quot;83&quot;</span>, <span class="st">&quot;13&quot;</span>, <span class="st">&quot;30&quot;</span>, <span class="st">&quot;34&quot;</span>, <span class="st">&quot;11&quot;</span>, <span class="st">&quot;66&quot;</span>), ]</span>
<span id="cb1-15"><a href="#cb1-15" tabindex="-1"></a></span>
<span id="cb1-16"><a href="#cb1-16" tabindex="-1"></a><span class="co"># Convert the spatial data to an sf object</span></span>
<span id="cb1-17"><a href="#cb1-17" tabindex="-1"></a>spdf_sf <span class="ot">&lt;-</span> <span class="fu">st_as_sf</span>(spdf)</span>
<span id="cb1-18"><a href="#cb1-18" tabindex="-1"></a></span>
<span id="cb1-19"><a href="#cb1-19" tabindex="-1"></a><span class="co"># Read the additional data</span></span>
<span id="cb1-20"><a href="#cb1-20" tabindex="-1"></a>data <span class="ot">&lt;-</span> <span class="fu">read.table</span>(<span class="st">&quot;https://raw.githubusercontent.com/holtzy/R-graph-gallery/master/DATA/data_on_french_states.csv&quot;</span>, <span class="at">header =</span> <span class="cn">TRUE</span>, <span class="at">sep =</span> <span class="st">&quot;;&quot;</span>)</span>
<span id="cb1-21"><a href="#cb1-21" tabindex="-1"></a></span>
<span id="cb1-22"><a href="#cb1-22" tabindex="-1"></a><span class="co"># Make sure the column names match for the join</span></span>
<span id="cb1-23"><a href="#cb1-23" tabindex="-1"></a><span class="fu">names</span>(spdf_sf)[<span class="fu">names</span>(spdf_sf) <span class="sc">==</span> <span class="st">&quot;code&quot;</span>] <span class="ot">&lt;-</span> <span class="st">&quot;id&quot;</span></span>
<span id="cb1-24"><a href="#cb1-24" tabindex="-1"></a></span>
<span id="cb1-25"><a href="#cb1-25" tabindex="-1"></a><span class="co"># Merge the fortified data with the additional data</span></span>
<span id="cb1-26"><a href="#cb1-26" tabindex="-1"></a>spdf_fortified <span class="ot">&lt;-</span> spdf_sf <span class="sc">%&gt;%</span></span>
<span id="cb1-27"><a href="#cb1-27" tabindex="-1"></a>  <span class="fu">left_join</span>(data, <span class="at">by =</span> <span class="fu">c</span>(<span class="st">&quot;id&quot;</span> <span class="ot">=</span> <span class="st">&quot;depcom&quot;</span>))</span>
<span id="cb1-28"><a href="#cb1-28" tabindex="-1"></a><span class="co"># Note that if the number of restaurant is NA, it is in fact 0</span></span>
<span id="cb1-29"><a href="#cb1-29" tabindex="-1"></a>spdf_fortified<span class="sc">$</span>nb_equip[ <span class="fu">is.na</span>(spdf_fortified<span class="sc">$</span>nb_equip)] <span class="ot">=</span> <span class="cn">NA</span></span>
<span id="cb1-30"><a href="#cb1-30" tabindex="-1"></a></span>
<span id="cb1-31"><a href="#cb1-31" tabindex="-1"></a><span class="co"># Plot</span></span>
<span id="cb1-32"><a href="#cb1-32" tabindex="-1"></a>p <span class="ot">&lt;-</span> <span class="fu">ggplot</span>(spdf_fortified) <span class="sc">+</span></span>
<span id="cb1-33"><a href="#cb1-33" tabindex="-1"></a>  <span class="fu">geom_sf</span>(<span class="fu">aes</span>(<span class="at">fill =</span> nb_equip), <span class="at">linewidth=</span><span class="dv">0</span>, <span class="at">alpha=</span><span class="fl">0.9</span>) <span class="sc">+</span></span>
<span id="cb1-34"><a href="#cb1-34" tabindex="-1"></a>  <span class="fu">theme_void</span>() <span class="sc">+</span></span>
<span id="cb1-35"><a href="#cb1-35" tabindex="-1"></a>  <span class="fu">scale_fill_viridis</span>(<span class="at">direction=</span><span class="sc">-</span><span class="dv">1</span>, <span class="at">trans =</span> <span class="st">&quot;log&quot;</span>, <span class="at">breaks=</span><span class="fu">c</span>(<span class="dv">1</span>,<span class="dv">5</span>,<span class="dv">10</span>,<span class="dv">20</span>,<span class="dv">50</span>,<span class="dv">100</span>), <span class="at">name=</span><span class="st">&quot;Number of restaurant&quot;</span>, <span class="at">guide =</span> <span class="fu">guide_legend</span>( <span class="at">keyheight =</span> <span class="fu">unit</span>(<span class="dv">3</span>, <span class="at">units =</span> <span class="st">&quot;mm&quot;</span>), <span class="at">keywidth=</span><span class="fu">unit</span>(<span class="dv">12</span>, <span class="at">units =</span> <span class="st">&quot;mm&quot;</span>), <span class="at">label.position =</span> <span class="st">&quot;bottom&quot;</span>, <span class="at">title.position =</span> <span class="st">&#39;top&#39;</span>, <span class="at">nrow=</span><span class="dv">1</span>) ) <span class="sc">+</span></span>
<span id="cb1-36"><a href="#cb1-36" tabindex="-1"></a>  <span class="fu">labs</span>(</span>
<span id="cb1-37"><a href="#cb1-37" tabindex="-1"></a>    <span class="at">title =</span> <span class="st">&quot;South of France Restaurant concentration&quot;</span>,</span>
<span id="cb1-38"><a href="#cb1-38" tabindex="-1"></a>    <span class="at">subtitle =</span> <span class="st">&quot;Number of restaurant per city district&quot;</span>, </span>
<span id="cb1-39"><a href="#cb1-39" tabindex="-1"></a>    <span class="at">caption =</span> <span class="st">&quot;Data: INSEE | Creation: Yan Holtz | r-graph-gallery.com&quot;</span></span>
<span id="cb1-40"><a href="#cb1-40" tabindex="-1"></a>  ) <span class="sc">+</span></span>
<span id="cb1-41"><a href="#cb1-41" tabindex="-1"></a>  <span class="fu">theme</span>(</span>
<span id="cb1-42"><a href="#cb1-42" tabindex="-1"></a>    <span class="at">text =</span> <span class="fu">element_text</span>(<span class="at">color =</span> <span class="st">&quot;#22211d&quot;</span>), </span>
<span id="cb1-43"><a href="#cb1-43" tabindex="-1"></a>    <span class="at">plot.background =</span> <span class="fu">element_rect</span>(<span class="at">fill =</span> <span class="st">&quot;#f5f5f2&quot;</span>, <span class="at">color =</span> <span class="cn">NA</span>), </span>
<span id="cb1-44"><a href="#cb1-44" tabindex="-1"></a>    <span class="at">panel.background =</span> <span class="fu">element_rect</span>(<span class="at">fill =</span> <span class="st">&quot;#f5f5f2&quot;</span>, <span class="at">color =</span> <span class="cn">NA</span>), </span>
<span id="cb1-45"><a href="#cb1-45" tabindex="-1"></a>    <span class="at">legend.background =</span> <span class="fu">element_rect</span>(<span class="at">fill =</span> <span class="st">&quot;#f5f5f2&quot;</span>, <span class="at">color =</span> <span class="cn">NA</span>),</span>
<span id="cb1-46"><a href="#cb1-46" tabindex="-1"></a>    </span>
<span id="cb1-47"><a href="#cb1-47" tabindex="-1"></a>    <span class="at">plot.title =</span> <span class="fu">element_text</span>(<span class="at">size=</span> <span class="dv">15</span>, <span class="at">hjust=</span><span class="fl">0.01</span>, <span class="at">color =</span> <span class="st">&quot;#4e4d47&quot;</span>, <span class="at">margin =</span> <span class="fu">margin</span>(<span class="at">b =</span> <span class="sc">-</span><span class="fl">0.1</span>, <span class="at">t =</span> <span class="fl">0.4</span>, <span class="at">l =</span> <span class="dv">2</span>, <span class="at">unit =</span> <span class="st">&quot;cm&quot;</span>)),</span>
<span id="cb1-48"><a href="#cb1-48" tabindex="-1"></a>    <span class="at">plot.subtitle =</span> <span class="fu">element_text</span>(<span class="at">size=</span> <span class="dv">12</span>, <span class="at">hjust=</span><span class="fl">0.01</span>, <span class="at">color =</span> <span class="st">&quot;#4e4d47&quot;</span>, <span class="at">margin =</span> <span class="fu">margin</span>(<span class="at">b =</span> <span class="sc">-</span><span class="fl">0.1</span>, <span class="at">t =</span> <span class="fl">0.43</span>, <span class="at">l =</span> <span class="dv">2</span>, <span class="at">unit =</span> <span class="st">&quot;cm&quot;</span>)),</span>
<span id="cb1-49"><a href="#cb1-49" tabindex="-1"></a>    <span class="at">plot.caption =</span> <span class="fu">element_text</span>( <span class="at">size=</span><span class="dv">8</span>, <span class="at">color =</span> <span class="st">&quot;#4e4d47&quot;</span>, <span class="at">margin =</span> <span class="fu">margin</span>(<span class="at">b =</span> <span class="fl">0.3</span>, <span class="at">r=</span><span class="sc">-</span><span class="dv">99</span>, <span class="at">unit =</span> <span class="st">&quot;cm&quot;</span>) ),</span>
<span id="cb1-50"><a href="#cb1-50" tabindex="-1"></a>    </span>
<span id="cb1-51"><a href="#cb1-51" tabindex="-1"></a>    <span class="at">legend.position =</span> <span class="fu">c</span>(<span class="fl">0.7</span>, <span class="fl">0.09</span>)</span>
<span id="cb1-52"><a href="#cb1-52" tabindex="-1"></a>  ) <span class="sc">+</span></span>
<span id="cb1-53"><a href="#cb1-53" tabindex="-1"></a>  <span class="fu">coord_sf</span>(<span class="at">datum =</span> <span class="cn">NA</span>)</span>
<span id="cb1-54"><a href="#cb1-54" tabindex="-1"></a>p</span></code></pre></div>
<p><img src="choropleth_files/figure-html/unnamed-chunk-1-1.png" width="960" style="display: block; margin: auto;" /></p>
<p><em>Note</em>: Boundaries of city districts come from <a
href="https://github.com/gregoiredavid/france-geojson">here</a>. Number
of restaurant per district comes from <a
href="https://www.insee.fr/fr/statistiques">here</a>.</p>
<p><em>Important Note</em>: Here, the absolute number of restaurant per
district is shown. Keep in mind that an important bias is present:
districts with large area and / or high number of inhabitants are more
prone to have a lot of restaurants.</p>
</div>
<div id="what-for" class="section level1">
<h1>What for</h1>
<hr />
<p>Choropleth maps are used to represent a variable on a map. It is a
great way to show the distribution of a variable across a territory. It
is often used in the field of demography, sociology, economy, etc. Here
is a more concise version of the “What for” section:</p>
<p>They offer several key benefits:</p>
<ul>
<li><strong>Highlight Spatial Patterns</strong>: Easily identify trends
and outliers across regions.</li>
<li><strong>Facilitate Comparison</strong>: Use color gradients to
compare data values between areas.</li>
<li><strong>Integrate Data</strong>: Combine various data sources for a
comprehensive geographical analysis.</li>
<li><strong>Scalability</strong>: Adapt to different geographical
levels, from global to local.</li>
<li><strong>Customization</strong>: Adjust colors, classification
methods, and add interactivity.</li>
<li><strong>Bias Mitigation</strong>: Normalize data and consider
alternatives like cartograms to reduce biases from region size or
population density.</li>
</ul>
</div>
<div id="variation" class="section level1">
<h1>Variation</h1>
<hr />
<ul>
<li><a href="https://www.data-to-viz.com/graph/hexbinmap.html">Hexbin
map</a>: A hexbin map is a variation of the choropleth map where the
regions are replaced by hexagons. It is useful when the regions have a
broad range of sizes.</li>
<li><a
href="https://www.data-to-viz.com/graph/cartogram.html">Cartogram</a>: A
cartogram is a variation of the choropleth map where the regions are
resized according to the variable of interest. It is useful to avoid the
biais introduced by the size of the regions, or to illustrate this
biais.</li>
</ul>
</div>
<div id="mistake" class="section level1">
<h1>Common mistakes</h1>
<hr />
<ul>
<li>Normalize your variable: you cannot compare raw numbers between
regions of distinct size or population.</li>
<li>Take a huge care when choosing the continuous color palette.</li>
<li>Don’t forget the legend.</li>
<li>If your regions have a broad range of sizes it introduces a biais.
You could consider using hexbin maps instead.</li>
<li>Don’t call it ch<u>L</u>oropleth map.</li>
</ul>
</div>
<div id="related" class="section level1">
<h1>Related</h1>
<hr />
<div class="row">
<div class="col-lg-3 col-md-3 col-sm-3">
<a href="https://www.data-to-viz.com/graph/choropleth.html" class="btn btn-primary mybtnrelated" style="margin-bottom:4px;white-space: normal !important;">
<img  src="https://github.com/holtzy/data_to_viz/raw/master/img/section/ChoroplethSmall.png">
<p class="mytitlerelated">
Choropleth
</p>
<p class="mytextrelated">
Display a aggregated value for each region of the map using color
gradients.
</p>
</a>
</div>
<div class="col-lg-3 col-md-3 col-sm-3">
<a href="https://www.data-to-viz.com/graph/cartogram.html" class="btn btn-primary mybtnrelated" style="margin-bottom:4px;white-space: normal !important;">
<img  src="https://github.com/holtzy/data_to_viz/raw/master/img/section/CartogramSmall.png">
<p class="mytitlerelated">
Cartogram
</p>
<p class="mytextrelated">
A circular version of a Treemap to visualize a hierarchical organization
</p>
</a>
</div>
<div class="col-lg-3 col-md-3 col-sm-3">
<a href="https://www.data-to-viz.com/graph/bubblemap.html" class="btn btn-primary mybtnrelated" style="margin-bottom:4px;white-space: normal !important;">
<img  src="https://github.com/holtzy/data_to_viz/raw/master/img/section/BubbleMapSmall.png">
<p class="mytitlerelated">
Bubble map
</p>
<p class="mytextrelated">
Display bubble on a map background to represent the value of a numeric
variable.
</p>
</a>
</div>
<div class="col-lg-3 col-md-3 col-sm-3">
<a href="https://www.data-to-viz.com/graph/map.html" class="btn btn-primary mybtnrelated" style="margin-bottom:4px;white-space: normal !important;">
<img  src="https://github.com/holtzy/data_to_viz/raw/master/img/section/MapSmall.png">
<p class="mytitlerelated">
Background Map
</p>
<p class="mytextrelated">
The basis for any geographic data visualization is to build a good
background map.
</p>
</a>
</div>
</div>
</div>
<div id="code" class="section level1">
<h1>Build your own</h1>
<hr />
<p>The <a href="https://r-graph-gallery.com/choropleth-map.html">R</a>,
<a href="https:/python-graph-gallery.com/choropleth-map/">Python</a>, <a
href="https://www.react-graph-gallery.com/choropleth-map">React</a> and
<a href="https://d3-graph-gallery.com/choropleth.html">D3</a> graph
galleries are 4 websites providing hundreds of chart example, always
providing the reproducible code. Click the button below to see how to
build the chart you need with your favorite programing language.</p>
<p>
<a href="https://r-graph-gallery.com/choropleth-map.html" class="btn btn-primary">R
graph gallery</a>
<a href="https://python-graph-gallery.com/choropleth-map/" class="btn btn-primary">Python
gallery</a>
<a href="https://www.react-graph-gallery.com/choropleth-map" class="btn btn-primary">React
gallery</a>
<a href="https://d3-graph-gallery.com/choropleth.html" class="btn btn-primary">D3
gallery</a>
</p>
</div>
</div>

          <section
            id="form"
            style="
              margin-top: 70px;
              padding-bottom: 70px;
              padding-top: 70px;
              background-color: #f8f9fa;
            "
          >
            <div class="container">
              <div
                style="
                  display: flex;
                  flex-direction: column;
                  align-items: center;
                "
              >
                <h2 style="font-size: 44px" class="text-center">
                  Dataviz decision tree
                </h2>
                <p
                  class="text-center"
                  style="max-width: 600px; font-size: 18px"
                >
                  <a href="https://www.data-to-viz.com">Data To Viz</a> is a
                  comprehensive <b>classification of chart types</b> organized
                  by data input format. Get a high-resolution version of our
                  decision tree delivered to your inbox now!
                </p>
                <div
                  style="
                    margin-top: -50px;
                    width: 100%;
                    display: flex;
                    justify-content: center;
                  "
                >
                  <script
                    async
                    data-uid="8010f15fd2"
                    src="https://prodigious-trailblazer-3628.ck.page/8010f15fd2/index.js"
                  ></script>
                </div>
                <br />
                <div class="text-center">
                  <img
                    class="img-fluid"
                    src="../img/poster/poster_small.png"
                    alt="High Resolution Poster"
                    style="max-width: 400px"
                  />
                </div>
              </div>
            </div>
          </section>

           &nbsp;
<hr />
<p style="text-align: center;">A work by <a href="https://www.yan-holtz.com/">Yan Holtz</a> for <a href="https://data-to-viz.com">data-to-viz.com</a></p>

<!-- Add icon library -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">

<!-- Add font awesome icons -->
<p style="text-align: center;">
	<a href="https://twitter.com/r_graph_gallery?lang=en" class="fa fa-twitter"></a>
	<a href="https://www.linkedin.com/in/yan-holtz-2477534a/" class="fa fa-linkedin"></a>
	<a href="https://github.com/holtzy/" class="fa fa-github"></a>
</p>

<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-79254642-3"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'UA-79254642-3');
</script>
<script>
var getOutboundLink = function(url) {
	gtag('event', 'click', {
		'event_category': 'outbound',
		'event_label': url,
		'transport_type': 'beacon',
		'event_callback': function(){document.location = url;}
	});
}
</script>

&nbsp;                </div>

    <script>

      // add bootstrap table styles to pandoc tables
      function bootstrapStylePandocTables() {
        $('tr.header').parent('thead').parent('table').addClass('table table-condensed');
      }
      $(document).ready(function () {
        bootstrapStylePandocTables();
      });

          </script>
       </body>
</html>
